home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / terms / kermit / b / iktmac.asm < prev    next >
Encoding:
Assembly Source File  |  1992-09-29  |  45.1 KB  |  571 lines

  1. *COPY                                                 RTEXT             00800000
  2.          MACRO                                                          00801000
  3. &LABEL   RTEXT  &BUF,&PROMPT=,&E=                                       00802000
  4. .* Read from the terminal, possible prompt.  Get length read in R0.     00803000
  5. .*  &1: read buffer (len=130) (LA), &PROMPT(1)= prompt buf. if any      00804000
  6. .*  (LA/R), &PROMPT(2)= prompt length (LA/R), &E= branch if error       00805000
  7.          GBLC  &KVRSN,&KSYS                                    @SC89027 00805100
  8.          AIF   ('&KVRSN' EQ '4.2' OR '&KSYS' EQ '').VOK        @SC90072 00805200
  9.    MNOTE 16,'* * * --> IKTMAC version number should be &KVRSN' @SC89027 00805300
  10. .VOK     ANOP                                                  @SC89027 00805400
  11. &LABEL   DS    0H                                              @SC86299 00806000
  12.          AIF   (T'&PROMPT EQ 'O').NOPR                         @SC87268 00807000
  13.          AIF   ('&PROMPT(1)'(1,1) NE '(').NOSV1                @SC89214 00807100
  14.          ST    &PROMPT(1),RTXTSV  Save register, in case (1)   @SC89214 00807200
  15. .NOSV1   ANOP                                                  @SC89214 00807300
  16.          KCALL SUPFNC,7,E=RTE&SYSNDX Skip prompt if stacked    @SC88095 00807400
  17.          AIF   ('&PROMPT(1)'(1,1) NE '(').NOSV2                @SC89214 00807500
  18.          L     &PROMPT(1),RTXTSV                               @SC89214 00807600
  19. .NOSV2   ANOP                                                  @SC89214 00807700
  20.          TPUT  &PROMPT(1),&PROMPT(2),ASIS                      @SC87268 00808000
  21. .NOPR    ANOP                                                           00809000
  22. RTE&SYSNDX KCALL GETLIN,&BUF,E=&E                              @SC88095 00809100
  23.          MEND                                                           00810000
  24. *COPY                                                 DMSFREE           00811000
  25.          MACRO                                                          00812000
  26. &LABEL   DMSFREE &DWORDS=(0),&ERR=                                      00813000
  27. .* Obtain free storage block: len=8*(R0).  Returns ptr in R1, but       00814000
  28. .*    preserves registers 2-14                                          00815000
  29. .*  &DWORDS= length in doublewords should be in R0,                     00816000
  30. .*  &ERR= branch if failure                                             00817000
  31. &LABEL   LREG  0,&DWORDS                                       @SC86299 00818000
  32.          SLA   0,3                                             @SC86299 00819000
  33.          AIF   ('&ERR' NE '').COND                             @SC86345 00820000
  34.          GETMAIN R,LV=(0)                                      @SC86299 00821000
  35.          MEXIT                                                          00822000
  36. .COND    GETMAIN RC,LV=(0)                                     @SC86345 00823000
  37.          LTR   15,15                                           @SC86345 00824000
  38.          BNZ   &ERR                                            @SC86345 00825000
  39.          MEND                                                           00826000
  40. *COPY                                                 DMSFRET           00827000
  41.          MACRO                                                          00828000
  42. &LABEL   DMSFRET &DWORDS=(0),&LOC=(1),&ERR=                             00829000
  43. .* Return free storage block: len=8*(R0), adr=(R1).  Preserve R2-14.    00830000
  44. .*  &DWORDS= length in doublewords should be in R0, &LOC= adr (in R1),  00831000
  45. .*  &ERR= branch if failure                                             00832000
  46. &LABEL   LREG  0,&DWORDS                                       @SC86299 00833000
  47.          SLA   0,3                                             @SC86299 00834000
  48.          FREEMAIN R,LV=(0),A=&LOC                              @SC86299 00835000
  49.          MEND                                                           00836000
  50. *COPY                                                 WRITF             00837000
  51.          MACRO                                                          00838000
  52. &LABEL   WRITF &TICK,&BUFFER=,&BSIZE=,&E=                               00839000
  53. .* Write to a disk file (ticket ptr in R1)                              00840000
  54. .*  &1: adr of file access ticket returned by OPENF (A),                00841000
  55. .*  &BUFFER= data ptr (LA/R), &BSIZE= data length (LA/R) - if either is 00842000
  56. .*  given, it replaces FDB value (see OPENF), &E= branch on error       00843000
  57. &LABEL   READF &TICK,BUFFER=&BUFFER,BSIZE=&BSIZE,E=&E,CODE=10           00844000
  58.          MEND                                                           00845000
  59. *COPY                                                 READF             00846000
  60.          MACRO                                                          00847000
  61. &LABEL   READF &TICK,&NONUM,&BUFFER=,&BSIZE=,&E=,&CODE=9                00848000
  62. .* Read from disk file (or write) (see WRITF, but also...)              00848500
  63. .*  &2: NONUM means chop off numbers                                    00849000
  64.          LCLC  &R                                              @SC86299 00850000
  65.          LCLA  &C                                              @SC88101 00850100
  66. &C       SETA  &CODE                                           @SC88101 00850200
  67.          AIF   (T'&NONUM EQ 'O').RDC                           @SC88101 00850300
  68.          AIF   ('&NONUM' NE 'NONUM').ER1                       @SC88101 00850400
  69. &C       SETA  0             Code 0 means exclude sequence nos.@SC88101 00850500
  70. .RDC     ANOP                                                  @SC88101 00850600
  71. &LABEL   L     1,&TICK                                         @SC86299 00851000
  72.          AIF   ('&BUFFER' EQ '').BZ                            @SC86299 00852000
  73.          AIF   ('&BUFFER'(1,1) NE '(').BLA                     @SC86299 00853000
  74. &R       SETC  '&BUFFER(1)'                                    @SC86299 00854000
  75.          AGO   .BST                                            @SC86299 00855000
  76. .BLA     LA    15,&BUFFER                                      @SC86299 00856000
  77. &R       SETC  '15'                                            @SC86299 00857000
  78. .BST     ST    &R,FDBBUFF-FABD(1)                              @SC86299 00858000
  79. .BZ      AIF   ('&BSIZE' EQ '').SZ                             @SC86299 00859000
  80.          AIF   ('&BSIZE'(1,1) NE '(').SLA                      @SC86299 00860000
  81. &R       SETC  '&BSIZE(1)'                                     @SC86299 00861000
  82.          AGO   .SST                                            @SC86299 00862000
  83. .SLA     LA    15,&BSIZE                                       @SC86299 00863000
  84. &R       SETC  '15'                                            @SC86299 00864000
  85. .SST     ST    &R,FDBBSIZ-FABD(1)                              @SC86299 00865000
  86. .SZ      LA    0,&C                                            @SC88101 00866000
  87.          KCALL DISKIO,E=&E                                     @SC86299 00867000
  88.          MEXIT                                                          00867300
  89. .ER1     MNOTE 2,'INVALID PARAMETER ''&NONUM'''                @SC88101 00867600
  90.          MEND                                                           00868000
  91. *COPY                                                 SAVEF             00868100
  92.          MACRO                                                          00868200
  93. &LABEL   SAVEF &TICK,&E=                                       @SC88168 00868300
  94. .* Update disk directory for given file (ticket ptr in R1)              00868400
  95. .*  &1: adr of file access ticket (A), &E= branch on error              00868500
  96. &LABEL   L     1,&TICK                                         @SC88168 00868600
  97.          READF &TICK,E=&E,CODE=21                              @SC88168 00868700
  98.          MEND                                                           00868800
  99. *COPY                                                 KSETKW            00869000
  100.          MACRO                                                          00870000
  101.          KSETKW ,                                              @SC87166 00871000
  102. .* Define system-specific SET/SHOW parameters (keywords)                00872000
  103.          KW    'DELIM',SHODLM,MIN=4                            @SC88095 00872500
  104.          KW    'PREFIX',SHODST,MIN=3                           @SC87166 00873000
  105.          MEND                                                           00875000
  106. *COPY                                                 KSETPRC           00876000
  107.          MACRO                                                          00877000
  108.          KSETPRC                                                        00878000
  109. .* System-specific SET handlers (in any order).  No operands.           00879000
  110.          PUSH  PRINT                                           @SC86355 00880000
  111.          PRINT GEN                                             @SC86355 00881000
  112. SETDST   KCALL CWDSET                                          @SC86164 00882000
  113.          B     RTRN          Preserve return code              @SC86295 00883000
  114. SETDLM   NTOKN N=SETDLM1,H=SETDLMH                             @SC88095 00883100
  115.          LTR   7,7           Exactly one character?            @SC88095 00883200
  116.          BNZ   SETDLMH       No, explain it                    @SC88095 00883300
  117.          MVC   LNDLM,0(6)    Yes, use that character           @SC88095 00883400
  118.          B     RTRN0                                           @SC88095 00883500
  119. SETDLM1  MVI   LNDLM,C' '    Turn delimiter off                @SC88095 00883600
  120.          B     RTRN0                                           @SC88095 00883700
  121. SETDLMH  PTEXT 'Line delimiter: one char or none'              @SC88095 00883800
  122.          B     SUBERR                                          @SC88095 00883900
  123.          POP   PRINT                                           @SC86355 00884000
  124.          MEND                                                           00885000
  125. *COPY                                                 KSHOPRC           00886000
  126.          MACRO                                                          00887000
  127.          KSHOPRC                                                        00888000
  128. .* System-specific SHOW handlers (in same order as KW).  No operands.   00889000
  129.          PUSH  PRINT                                           @SC86355 00890000
  130.          PRINT GEN                                             @SC86355 00891000
  131. SHODLM   LA    8,LNDLM       Show delimiter                    @SC88095 00891200
  132.          BAL   14,SHOCHR                                       @SC88095 00891400
  133.           B    SETDLM                                          @SC88095 00891600
  134. SHODST   LA    8,DEST                                          @SC86316 00892000
  135.          LH    9,DESTL       Get length                        @SC86316 00893000
  136.          BAL   14,SHOCHRN                                      @SC86295 00894000
  137.           B    SETDST                                          @SC87166 00895000
  138.          POP   PRINT                                           @SC86355 00898000
  139.          MEND                                                           00899000
  140. *COPY                                                 KFILKW            00900000
  141.          MACRO                                                          00901000
  142.          KFILKW ,                                              @SC87166 00902000
  143. .* Define system-specific file attribute parameters (keywords)          00903000
  144.          KW    'BLKSIZE',SHOBSZ,MIN=2                          @SC87166 00904000
  145.          KW    'RECFM',SHORFM                                  @SC87166 00905000
  146.          KW    'SPACE',SHOTRK,MIN=2                            @SC87166 00906000
  147.          KW    'UNIT',SHOUNT                                   @SC87166 00907000
  148.          KW    'VOLUME',SHOVOL,MIN=2                           @SC87166 00908000
  149.          MEND                                                           00909000
  150. *COPY                                                 KFILSET           00910000
  151.          MACRO                                                          00911000
  152.          KFILSET                                                        00912000
  153. .* Specific SET FILE handlers (any order).  No operands.                00913000
  154.          PUSH  PRINT                                           @SC87012 00914000
  155.          PRINT GEN                                             @SC87012 00915000
  156. SETRECVF MVC   FILRCF,0(6)   Copy RECFM                        @SC88120 00916000
  157.          B     RTRN0                                           @SC87012 00917000
  158. *                                                              @SC87012 00918000
  159. SETRFM   BAL   4,SETSCN                                        @SC87012 00919000
  160.          KW    'FIXED',SETRECVF                                @SC87012 00920000
  161.          KW    'VARIABLE',SETRECVF                             @SC87012 00921000
  162.          KW    'UNDEFINED',SETRECVF                            @SC86295 00922000
  163.          KW    ,                                               @SC87012 00923000
  164. *                                                                       00924000
  165. SETUNT   BAL   2,SETFSTR     Get fixed-format string           @SC86316 00925000
  166.          TR    FILUNT,UPCASE Should always be upper case       @SC88020 00925500
  167.          MVC   LOGUNT,FILUNT                                   @SC86316 00926000
  168.          B     RTRN0                                           @SC86316 00927000
  169. *                                                                       00928000
  170. SETVOL   BAL   2,SETFSTR     Get fixed-format string           @SC86295 00929000
  171.          TR    FILVOL,UPCASE Should always be upper case       @SC88020 00929500
  172.          MVC   LOGVOL,FILVOL                                   @SC86316 00930000
  173.          B     RTRN0                                           @SC86295 00931000
  174.          POP   PRINT                                           @SC87012 00932000
  175.          MEND                                                           00933000
  176. *COPY                                                 KFILSHO           00934000
  177.          MACRO                                                          00935000
  178.          KFILSHO                                                        00936000
  179. .* Specific SHOW FILE handlers (same order as KW).  No operands.        00937000
  180.          PUSH  PRINT                                           @SC87012 00938000
  181.          PRINT GEN                                             @SC87012 00939000
  182. SHOBSZ   L     8,MAXBSZ      Limit                             @SC87166 00940000
  183.          LH    4,FILBLKSI                                      @SC87320 00941000
  184.          BAL   14,SHONUM     Print it                          @SC86295 00942000
  185.           B    RTRN0                                           @SC86295 00943000
  186. SHORFM   LA    8,FILRCF                                        @SC88120 00944000
  187.          BAL   14,SHOCHR                                       @SC87012 00945000
  188.           B    SETRFM                                          @SC87166 00946000
  189. SHOTRK   L     8,MAXBSZ      Limit                             @SC87166 00947000
  190.          L     4,FILTRKAL                                      @SC88026 00948000
  191.          BAL   14,SHONUM     Print it                          @SC86295 00949000
  192.           B    RTRN0                                           @SC87166 00950000
  193. SHOUNT   LA    8,FILUNT                                        @SC86316 00951000
  194.          LA    9,8                                             @SC86316 00952000
  195.          BAL   14,SHOCHRN                                      @SC86316 00953000
  196.           B    SETUNT                                          @SC87166 00954000
  197. SHOVOL   LA    8,FILVOL                                        @SC86295 00955000
  198.          LA    9,6                                             @SC86295 00956000
  199.          BAL   14,SHOCHRN                                      @SC86295 00957000
  200.           B    SETVOL                                          @SC87166 00958000
  201.          POP   PRINT                                           @SC87012 00959000
  202.          MEND                                                           00960000
  203. *COPY                                                 WTEXT             00961000
  204.          MACRO                                                          00962000
  205. &LABEL   WTEXT &ARG,&LEN                                                00963000
  206. .* Display some text, e.g., WTEXT 'Hi there' or WTEXT (3),(4)           00964000
  207. .* Preserves R2-R14                                                     00965000
  208. .*  &1: 'text' (where text has no doubled ' or & characters)  OR        00966000
  209. .*  &1: adr of text (LA/R), &2: length of text (LA/R)                   00967000
  210. &LABEL   PTEXT &ARG,&LEN,AREG=1,LREG=0                         @SC86295 00968000
  211.          BAL   15,WTEXT      'TPUT'                            @SC87020 00969000
  212.          MEND                                                           00970000
  213. *COPY                                                 FDBD              00971000
  214.          MACRO                                                          00972000
  215.          FDBD                                                           00973000
  216. .* Map of File Descriptor Block + File Access Block                     00974000
  217. FABD     DSECT ,                                               @SC86295 00975000
  218. FABRELAD DS    17X           FAB maps DCB                      @SC86299 00976000
  219. FABREL   DS    AL3                                             @SC86299 00977000
  220. FABBUFNO DS    0BL1                                            @SC86299 00978000
  221. FABBUFCB DS    A                                               @SC86299 00979000
  222. FABBUFL  DS    H                                               @SC86299 00980000
  223. FABDSORG DS    BL2                                             @SC86299 00981000
  224. FABIOBAD DS    A                                               @SC86299 00982000
  225. FABEODAD DS    A                                               @SC86299 00983000
  226. FABRECFM DS    0BL1                                            @SC86299 00984000
  227. FABRECU  EQU   X'C0'         Undefined-length records          @SC86299 00985000
  228. FABRECF  EQU   X'80'         Fixed-length records              @SC86299 00986000
  229. FABRECV  EQU   X'40'         Varying-length records            @SC86299 00987000
  230. FABRECBR EQU   X'10'         Blocked records                   @SC86299 00988000
  231. FABRECCC EQU   X'06'         Control chars present             @SC88106 00988500
  232. FABEXLST DS    A                                               @SC86299 00989000
  233. FABDDNAM DS    CL8                                             @SC86299 00990000
  234. FABOFLGS DS    BL1                                             @SC86299 00991000
  235. FABIFLG  DS    BL1                                             @SC86299 00992000
  236. FABMACR  DS    BL2                                             @SC86299 00993000
  237.          ORG   FABDDNAM                                        @SC86299 00994000
  238. FABTIOT  DS    BL2                                             @SC86299 00995000
  239. FABMACRF DS    BL2                                             @SC86299 00996000
  240. FABDEBAD DS    A                                               @SC86299 00997000
  241. FABGET   DS    A                                               @SC86299 00998000
  242. FABCHECK DS    A                                               @SC86299 00999000
  243. FABSYNAD DS    A                                               @SC86299 01000000
  244. FABCIND1 DS    BL2                                             @SC86299 01001000
  245. FABBLKSI DS    H                                               @SC86299 01002000
  246. FABWCPO  DS    BL4                                             @SC86299 01003000
  247. FABIOBA  DS    A                                               @SC86299 01004000
  248. FABEOBAD DS    A                                               @SC86299 01005000
  249. FABRECAD DS    A                                               @SC86299 01006000
  250. FABDIRCT DS    H                                               @SC86299 01007000
  251. FABLRECL DS    H                                               @SC86299 01008000
  252. FABCNTRL DS    A                                               @SC86299 01009000
  253.          ORG   FABD+90                                         @SC86299 01010000
  254. FABPRECL DS    AL2                                             @SC86299 01011000
  255. FABEOB   DS    A                                               @SC86299 01012000
  256. FDBD     DS    0F            Beginning of short descriptor     @SC86295 01013000
  257. FDBBUFF  DS    A             Buffer ptr                        @SC86295 01014000
  258. FDBBSIZ  DS    F             Max record length                 @SC86295 01015000
  259. FDBRCF   DS    C             Record format                     @SC86295 01016000
  260. FDBFLGS  DS    X             Flags                             @SC86295 01017000
  261. FDBACTV  EQU   X'80'         File is already open              @SC86295 01018000
  262. * SVATT  EQU   X'40'         Preserve attributes               @SC90033 01018500
  263. * APPN   EQU   X'10'         DISP=MOD                          @SC86295 01019000
  264. *ABRECCC EQU   X'06'         Control chars present             @SC88246 01020000
  265. PDSF     EQU   X'01'         Dataset is a PDS                  @SC87015 01021000
  266. FDBLRC   DS    H             File record length                @SC86295 01022000
  267. FDBTRKAL DS    F             File track allocation increment   @SC88026 01023000
  268. FDBBLKSI DS    H             File block size                   @SC86295 01024000
  269. FDBDEVT  DS    XL4           Device type (must precede VOL)    @SC88106 01024500
  270. FDBVOL   DS    CL6           File volume label                 @SC86295 01025000
  271. FDBUNT   DS    CL8           File unit name                    @SC86299 01026000
  272. FDBSIZE  DS    F             File size in Kbytes               @SC86299 01028000
  273. FDBCOP   EQU   *-FDBD        Length to copy for OPEN           @SC90037 01028500
  274. FDBDATE  DS    XL7,X         Time stamp: packed yyyymmddhhmmss @SC88235 01029000
  275. FABDSN   DS    CL52          Dataset name                      @SC86299 01032000
  276. FABDSMB  EQU   FABDSN+44,8   Member name                       @SC88119 01032050
  277. FDBINFO  EQU   *-FDBD        Length of info returned           @SC86295 01032100
  278. FABLRTR  DS    F             Record length for truncation      @SC88120 01032300
  279. FABEXL   DS    3A            Modifiable EXLST                  @SC89073 01032600
  280. FABCOMM  DS    CL8           Command name                      @SC87351 01033000
  281. FABDWDS  EQU   (*-FABD+7)/8                                    @SC86295 01034000
  282.          MEND                                                           01035000
  283. *COPY                                                 FDBPAT            01036000
  284.          MACRO                                                          01037000
  285.          FDBPAT &N,&RFM,&SIZ                                   @SC88120 01038000
  286. .* Define system-dependent part of output FDB patterns                  01039000
  287. .*  &1: variable-name prefix (or null if defining init. values)         01040000
  288. .*  &2: RECFM (1-char), &3: LRECL (skip rest of FDB if omitted)@SC88120 01040500
  289.          LCLC  &T,&B,&D,&V,&U,&Z                               @SC88287 01041000
  290.          LCLC  &R,&F,&L,&S,&P4                                 @SC90037 01041500
  291.          AIF   ('&N' EQ '').ALC                                @SC86316 01042000
  292. &R       SETC  'RCF'                                           @SC88120 01042200
  293. &F       SETC  'FLGS'                                          @SC88120 01042400
  294. &L       SETC  'LRC'                                           @SC88120 01042600
  295. &T       SETC  'TRKAL'                                         @SC87320 01043000
  296. &B       SETC  'BLKSI'                                         @SC87320 01044000
  297. &D       SETC  'DEVT'                                          @SC88287 01044500
  298. &V       SETC  'VOL'                                           @SC86316 01045000
  299. &U       SETC  'UNT'                                           @SC86316 01046000
  300. &S       SETC  'FSIZ'                                          @SC90037 01046500
  301. .ALC     ANOP                                                  @SC86316 01047000
  302. &N&R     DC    C'&RFM'       RECFM                             @SC88120 01047100
  303. &N&F     DC    X'00'         Flags                             @SC88120 01047200
  304.          AIF   ('&SIZ' EQ '').DONE                             @SC88120 01047300
  305.          AIF   ('&RFM' NE 'V').OKL                             @SC88120 01047400
  306. &P4      SETC  '+4'          Add 4 for RDW                     @SC88120 01047500
  307. .OKL     ANOP                                                  @SC88120 01047600
  308. &N&L     DC    Y(&SIZ&P4)    LRECL                             @SC88120 01047700
  309. &N&T     DC    F'5'          Track allocation                  @SC88026 01048000
  310. &Z       SETC  '6233'        Default block size                @SC87320 01049000
  311.          AIF   ('&SIZ' NE 'LPKT').P1                           @SC88120 01050000
  312. &Z       SETC  'LPKT+8'      Block size for log file           @SC87320 01051000
  313. .P1      ANOP                                                           01052000
  314. &N&B     DC    Y(&Z)                                           @SC87320 01053000
  315. &N&D     DC    XL4'0'        Device type (must precede VOL)    @SC88287 01053500
  316. &N&V     DC    CL6' '        No volume specified               @SC87320 01054000
  317. &N&U     DC    CL8' '        Default unit                      @SC88054 01055000
  318. &N&S     DC    F'0'          File size in Kbytes               @SC90037 01055200
  319. .DONE    ANOP                                                  @SC88120 01055500
  320.          MEND                                                           01056000
  321. *COPY                                                 KSYSVAR           01057000
  322.          MACRO                                                          01058000
  323.          KSYSVAR                                                        01059000
  324. .* Define system-dependent globally-known variables                     01060000
  325. COMPTR   DS    2A            Common/storage ptrs               @SC87015 01061000
  326. APGPB    GETLINE MF=L        Parameter block for GETLINE       @NW86330 01062000
  327. STAXPLR  STAX  0,MF=L        Parameter block for STAX (replace)@NW86330 01064000
  328. IOPLAREA DS    4F            IOPL                              @TS86001 01065000
  329. ORGPCMD  DS    CL8           Saved ECT PCMD field              @SC89052 01065500
  330. CPECB    DS    F             GETLINE/PUTLINE/PUTGET ECB        @TS86001 01066000
  331. ECBREAD  DS    F                                               @NW86330 01067000
  332. TASKADD  DS    A             Async task adr                    @NW86330 01068000
  333. SYSPROC  DS    A             Ptr to CLIST library DCB          @SC89073 01068500
  334. ECBTGET  DS    F                                               @NW86330 01069000
  335. KTGETT   DS    2F            Adr and length of read request    @SC87015 01070000
  336. PUTLINAD DS    A             Adr of PUTLINE routine            @SC88026 01070500
  337. GETLINAD DS    A             Adr of GETLINE routine            @NW86330 01071000
  338. DFMSGP   DS    A             Ptr to DAIR message buffer        @SC88119 01073000
  339. CATDSPTR DS    A             Catalog buffer ptr                @NW86330 01075000
  340. NXSFPTR  DS    A             Ptr to suffix comparand           @SC87015 01076000
  341. CIRPARM  DS    0F                                              @NW86330 01077000
  342. CIROPT   DS    X'02'         Get all matches                   @NW86330 01078000
  343.          DS    2AL1(0)       Reserved by system                @NW86330 01079000
  344. CIRLOCRC DS    AL1(0)        Locate return code                @NW86330 01080000
  345. CIRSRCH  DS    A             Search arg: adr of test DSN       @NW86330 01081000
  346. CIRCVOL  DS    F'0'          Vol adr=0 - force cat lookup      @NW86330 01082000
  347. CIRWA    DS    A             Ptr to user work area             @NW86330 01083000
  348. CIRSAVE  DS    A             Ptr to save area for macro        @NW86330 01084000
  349. CIRPSWD  DS    F'0'          Adr of password                   @NW86330 01085000
  350. DESTL    DS    H'0'          Length                            @SC86299 01085500
  351. DEST     DS    CL44          Default PREFIX                    @SC86299 01086000
  352. DESTP    DS    C' '          PDS indicator ('.' if so)         @SC86299 01087000
  353. RTXTSV   DS    F             Saved register for prompt         @SC89214 01087050
  354. CAMLOC   DS    4F            Ptrs for locating dataset         @SC86299 01087100
  355. CAMOBT   DS    4F            Ptrs for getting DSCB             @SC86299 01087200
  356. DSKCOD   EQU   CAMOBT        Temp for function code            @SC88101 01087300
  357. CAMVOLS  DS    0D,XL265      Storage for volume list           @SC86299 01087400
  358. CAMDEVT  EQU   CAMVOLS+2,4   1st device type                   @SC88106 01087500
  359.          ORG   CAMVOLS+100   Do a little overlaying            @SC88049 01087600
  360. CAMDSCB  DS    0F,XL101      Storage for DSCB                  @SC88014 01087700
  361.          ORG   CAMDSCB+1                                       @SC88014 01087800
  362. DS1VOL   DS    CL6,XL2       Volume serial                     @SC86299 01087900
  363. DS1CRDT  DS    2XL3,3X,XL8   Creation date                     @GH89270 01088000
  364. DS1MDDT  DS    XL3           Modification date (ASM2)          @GH89270 01088010
  365. DS1MDTM  DS    XL2           Modification time of day (ASM2)   @GH89270 01088020
  366. DS1RFDT  DS    XL3,XL4       Reference date                    @SC86299 01088100
  367. DS1DSO   DS    XL2           Dataset org                       @SC86299 01088200
  368. DS1RCF   DS    X             Record format                     @SC86299 01088300
  369. DS1OPT   DS    X             Error option                      @SC86299 01088400
  370. DS1BLK   DS    H             Block size                        @SC86299 01088500
  371. DS1LRC   DS    H             Logical record length             @SC86299 01088600
  372. LKPMEM   DS    CL8           Temporary for member name if mig. @SC89250 01088650
  373.          ORG   ,                                               @SC86299 01088700
  374.          DS    0F                                              @SC86299 01089000
  375. DSKSTT   EQU   *-FDBD+FABD                                     @SC86299 01090000
  376.          DS    XL(FDBINFO)   Room for FDB                      @SC86299 01091000
  377. NXFN     DS    CL(LFID)      Pattern filespec for search       @SC87015 01092000
  378. DSNPFL   DS    H             Prefix length for search          @NW86330 01093000
  379. DSNSFL   DS    H             Suffix length for search          @NW86330 01094000
  380. ICPRGS   DS    4F            Saved registers for type-out      @SC88026 01095000
  381. ICPFL    DS    X             Flag for type-out interception    @SC87020 01096000
  382. SCRLST   DS    X             Flag for previous I/O op          @SC88091 01096500
  383. STMUCH   DS    XL2           Saved user profile values         @SC86299 01097000
  384. OLDUPTSW DS    X             Old UPTSWS field, saved for STCOM @TL89181 01097100
  385. PTLLEN   DS    0F,2H         PUTLINE data descriptor           @SC88026 01097200
  386. PTLBUF   DS    CL133                                           @SC88026 01097400
  387. STKDSN   DS    CL(LFID)      DSN for STACK                     @SC88026 01097600
  388. *                                                                       01097680
  389. DSKFL    DS    X             Flags for catalog scanning        @SC90033 01097760
  390. NXDON    EQU   X'40'         Catalog search done               @SC87015 01097840
  391. WFN      EQU   X'08'         Filename contains wild chars      @SC88246 01097920
  392.          MEND                                                           01098000
  393. *COPY                                                 KSYSTF            01099000
  394.          MACRO                                                          01100000
  395.          KSYSTF                                                         01101000
  396. .* Define system-dependent globally-known constants and init. variables 01102000
  397. .*  symb .DS + label &P.DEFS mark start of variables/init. values       01103000
  398.          GBLC  &STORDS                                         @SC89268 01103500
  399.          LCLC  &P                                                       01104000
  400.          PUSH  PRINT                                                    01105000
  401.          PRINT GEN                                                      01106000
  402.          AIF   ('&SYSECT' EQ '&STORDS').DS                     @SC89268 01107000
  403. &P       SETC  'I'           For initial values                         01108000
  404. WTEXT    STM   14,1,ICPRGS   Save                              @SC88026 01109000
  405.          CLI   ICPFL,2       Intercepting?                     @SC88026 01109200
  406.          BE    WTXICP        Yes, do it                        @SC88026 01109400
  407.          MVC   PTLBUF,0(1)   Copy to buffer                    @SC88026 01109600
  408.          A     0,F4                                            @SC88026 01109800
  409.          STH   0,PTLLEN      And save length                   @SC88026 01110000
  410.          MVI   CPECB,0       Clear ECB                         @SC88119 01110100
  411.          L     15,PUTLINAD                                     @SC88026 01110200
  412.          PUTLINE PARM=PTPB,MF=(E,IOPLAREA),ENTRY=(15)          @SC88026 01110400
  413.          B     WTXRET                                          @SC87020 01113000
  414. WTXICP   KCALL ICPTYP        Call interception routine         @SC87020 01114000
  415. WTXRET   LM    14,1,ICPRGS   Restore                           @SC88026 01115000
  416.          BR    15                                              @SC87020 01116000
  417. KSYSATOE DC    A(0)          Normal TTY E/A translation        @SC88302 01116300
  418. KSYSETOA DC    A(0)                                            @SC88302 01116600
  419. SYSATR   DC    AL1(ADOT,ABL+2,AI,A2)  ."I2  System type=TSO    @SC88273 01117000
  420. LSYSATR  EQU   *-SYSATR      Length of stuff for A-packet      @SC88273 01117500
  421. LOGNAM   DC    C'KER.LOG'                                      @SC86299 01118000
  422. REPNAM   DC    C'KER.REPLY'                                    @SC86299 01119000
  423. SYSTAKE  DC    C'''SYS1'                                       @SC88113 01120000
  424. DKERMINI DC    C'.KERMINI'''                                   @SC88113 01120500
  425. LSYST    EQU   *-SYSTAKE                                       @SC86299 01121000
  426. USRTAKE  DC    C'KERMINI'    Init file                         @SC86299 01122000
  427. LUSRT    EQU   *-USRTAKE                                       @SC86299 01123000
  428. KMAIL1   DC    C'KERMAIL ' System cmd for invoking mail        @SC90037 01123100
  429. KMAIL2   DC    C' LIST('                                       @SC90037 01123200
  430. KMAIL3   DC    C')'                                            @SC90037 01123300
  431. KPRNT1   DC    C'KERMPRT ' System cmd for printing             @SC90037 01123400
  432. KPRNT2   DC    C' OPTIONS('                                    @SC90037 01123500
  433. KPRNT3   DC    C')'                                            @SC90037 01123600
  434. KSUBM1   DC    C'KERMSUB ' System cmd for submitting job       @SC90037 01123700
  435. KSUBM2   DC    C' OPTIONS('                                    @SC90037 01123800
  436. KSUBM3   DC    C')'                                            @SC90037 01123900
  437. CIRWAL   DC    H'32004,0'    Length of catalog work area       @SC87015 01125000
  438. KSYSNIT  CSECT                                                 @SC89215 01125500
  439. .DS      ANOP                                                           01126000
  440. &P.DEFS  DS    0D                                                       01127000
  441. * Timer exit routine                                           @SC88299 01127090
  442.          USING *,15          Addressiblity for getting ECB     @SC88299 01127180
  443. &P.TMXIT STM   0,1,20(13)    Save registers                    @SC88299 01127270
  444.          ICM   1,15,&P.TMXPT Get ptr to target ECB             @SC88299 01127360
  445.          POST  (1),1                                           @SC88299 01127450
  446.          LM    0,1,20(13)    Restore registers                 @SC88299 01127540
  447.          BR    14            Return to system                  @SC88299 01127630
  448. &P.TMXPT DS    AL4           Ptr to ECB                        @SC88299 01127720
  449.          DROP  15                                              @SC88299 01127810
  450. *                                                                       01127900
  451. &P.KPRPL DC    AL1(L'KPRPT)                                    @SC89268 01128000
  452. &P.KPRPT DC    C'Kermit-TSO>'                                  @SC87268 01129000
  453.          ORG   &P.KPRPT+20                                     @SC87268 01130000
  454. &P.LNDLM DC    C' '          Initially no delimiter            @SC88095 01130200
  455.          POP   PRINT                                                    01131000
  456. &P.PTPB  PUTLINE MF=L,OUTPUT=(0,TERM,SINGLE,DATA)              @SC88026 01131100
  457.          MEND                                                           01132000
  458. *COPY                                                 KSYSBUF           01133000
  459.          MACRO                                                          01134000
  460.          KSYSBUF                                                        01135000
  461. .* Store buffer ptrs from R1 and increment R1 for specific buffers      01136000
  462.          LA    0,4-1                                           @SC87015 01137000
  463.          AR    1,0                                             @SC87015 01138000
  464.          OR    1,0                                             @SC87015 01139000
  465.          XR    1,0                                             @SC87015 01140000
  466.          ST    1,CIRSAVE     Catalog scan save area            @SC87015 01141000
  467.          LA    1,72(1)                                         @SC87015 01142000
  468.          ST    1,CIRWA       Catalog info buffer               @SC87015 01143000
  469.          AH    1,CIRWAL                                        @SC87015 01144000
  470.          ST    1,CIRSRCH     Catalog search comparand          @SC87015 01145000
  471.          LA    1,44(1)                                         @SC87015 01146000
  472.          ST    1,DFMSGP      DAIR message buffer               @SC88119 01146300
  473.          LA    1,512(1)                                        @SC88119 01146600
  474.          MEND                                                           01147000
  475. *COPY                                                 SSYMS             01148000
  476.          MACRO                                                          01149000
  477.          SSYMS                                                          01150000
  478. .* Set global symbols for conditional assembly                          01151000
  479.          GBLC  &KVRSN,&KSYS,&KDATE,&RTN,&TYPCMD,&S1CMD,&KCONT  @SC88309 01152000
  480.          GBLC  &KEDIT,&STORDS,&KTAG                            @SC90067 01152500
  481.          GBLA  &MAXLR,&MAXBS                                   @SC86268 01153000
  482. &KSYS    SETC  'TSO'         System name                       @SC86299 01154000
  483.   MNOTE '*** Kermit-&KSYS release &KVRSN..&KEDIT &KTAG (&KDATE) ***'    01155500
  484. &MAXLR   SETA  32756         Max lrecl                         @SC86299 01156000
  485. &MAXBS   SETA  32760         Max blksize                       @SC86299 01157000
  486. &S1CMD   SETC  'F1C2'        S/1 command prefix                @LP88187 01158000
  487. &KCONT   SETC  'T'           Default controller type (TTY)     @SC88309 01158500
  488.          PUSH  PRINT                                                    01159000
  489.          PRINT GEN                                                      01160000
  490. MAXWT    EQU   1024          Max TPUT buffer                   @SC86299 01161000
  491. MAXRT    EQU   1024          Max TGET buffer                   @SC86299 01162000
  492. LFID     EQU   60            Max length of filespec            @SC88342 01163000
  493. &TYPCMD  SETC  'LIST'        Host command for TYPE             @SC86299 01164000
  494. TYPMIN   EQU   4             Min abbrv of system TYPE cmd or 2 @SC86299 01165000
  495. FBRK1    EQU   C'<'          Starting character for options    @SC89218 01165300
  496. FBRK2    EQU   C'>'          Ending character for options      @SC89218 01165600
  497. KMAXE    EQU   1920-7        < 9025  Kermit extended max pkt   @SC87351 01166000
  498. STKDWDS  EQU   511           Size of save-area stack           @SC87012 01167000
  499. &STORDS  SETC  'KSTORG'      Storage DSECT for Kermit globals  @SC89268 01167200
  500. KWRKBASE EQU   11            Base register for work area       @SC89268 01167400
  501. KSUBBASE EQU   12            Base register for CSECT           @SC89268 01167600
  502.          POP   PRINT                                                    01168000
  503.          MEND                                                  @SC86268 01169000
  504. *COPY                                                 SYSMACS           01170000
  505.          MACRO                                                          01171000
  506.          SYSMACS                                                        01172000
  507. .* Include system control block definition macros and list all macros   01173000
  508.  MNOTE '---MACROs: ATTACH, CATALOG, CLOSE, DETACH, DEVTYPE,'            01174000
  509.  MNOTE '---        ESTAI, FIND, FREEMAIN,'                              01174500
  510.  MNOTE '---        FREEPOOL, GETLINE, GETMAIN, GTSIZE, IDENTIFY,'       01175000
  511.  MNOTE '---        IKJCPPL, IKJECT, IKJGTPB, IKJIOPL, IKJUPT,'          01175050
  512.  MNOTE '---        LINK, LOAD, LOCATE, OBTAIN, OPEN, POST,'             01175100
  513.  MNOTE '---        PUTLINE, RDJFCB, SAVE, SCRATCH, STATUS, STAX,'       01175150
  514.  MNOTE '---        STCOM, STFSMODE, STIMER, STSIZE, SYNADAF,'           01175200
  515.  MNOTE '---        SYNADRLS, TGET, TPG, TPUT, TTIMER, WAIT'             01175250
  516.          IKJCPPL ,                                             @SC86299 01179000
  517.          IKJECT ,                                              @SC86299 01182000
  518.          IKJGTPB ,                                             @NW86330 01183000
  519.          IKJIOPL ,                                             @TS86001 01184000
  520.          IKJUPT ,                                              @SC86299 01186000
  521. * DSECT for addressing catalog information work area                    01187000
  522. CATDSET  DSECT                                                 @NW86330 01188000
  523. TYPEBYTE DS    XL1           Type byte we want only A's        @NW86330 01189000
  524. CATDNAME DS    44CL1         Data set name                     @NW86330 01190000
  525.          MEND                                                  @SC86268 01191000
  526. *COPY                                                 STRTMSGS          01192000
  527.          MACRO                                                          01193000
  528. &LABEL   STRTMSGS                                                       01194000
  529. .* Print system-dependent start-up messages                             01195000
  530. &LABEL   CLI   S1HND,XON                                       @SC87338 01196000
  531.          BNE   STRT1Z                                          @SC87338 01197000
  532.          CLI   TRMTP,C'T'                                      @SC87338 01198000
  533.          BE    STRT1Z                                          @SC87338 01199000
  534.          CLI   TRMTP,C'V'                                      @SC89020 01199300
  535.          BE    STRT1Z                                          @SC89020 01199600
  536.          WTEXT 'Handshake is XON -- not needed'                @SC87338 01200000
  537. STRT1Z   DS    0H                                              @SC87338 01201000
  538.          MEND                                                  @SC87338 01202000
  539. *COPY                                                 KMAIN             01203000
  540.          MACRO                                                          01204000
  541. &LABEL   KMAIN &TYPE                                                    01205000
  542. .* Linkage conventions with system.                                     01206000
  543. .*  &1: ENTER if entering, RETURN if returning                          01207000
  544.          AIF   ('&TYPE' NE 'RETURN').ENT                       @SC89268 01208000
  545. &LABEL   L     13,4(13)      Unlink                            @SC86295 01209000
  546.          ST    15,16(13)     Save return code                  @SC86295 01210000
  547.          LA    0,STODWDS+STKDWDS                               @SC87012 01211000
  548.          LR    1,KWRKBASE                                      @SC89268 01212000
  549.          DMSFRET DWORDS=(0),LOC=(1)                            @SC86295 01213000
  550.          LM    14,12,12(13)  Restore registers                 @SC86295 01214000
  551.          BR    14                                              @SC86295 01215000
  552.          MEXIT ,                                               @SC89268 01216000
  553. .ENT     AIF   ('&TYPE' NE 'ENTER').OTH                        @SC89268 01217000
  554.          LR    KSUBBASE,15                                     @SC89268 01218000
  555.          L     10,=A(COMMON) Common code addressibility        @SC86316 01219000
  556.          LA    0,STODWDS+STKDWDS                               @SC87012 01220000
  557.          DMSFREE DWORDS=(0)  Get storage for vars + stack      @SC86295 01221000
  558.          LR    KWRKBASE,1    Get addressibility                @SC89268 01222000
  559.          LR    0,1                                             @SC86295 01223000
  560.          LA    1,8*STODWDS   Length of storage                 @SC86295 01224000
  561.          SR    15,15         Zero fill                         @SC86295 01225000
  562.          MVCL  0,14                                            @SC86295 01226000
  563.          LR    15,0          Start of stack                    @SC86295 01227000
  564.          A     0,=A(8*STKDWDS) End of stack                    @SC87012 01228000
  565.          STM   15,0,STKPTR                                     @SC86295 01229000
  566.          ST    15,STKLO                                        @SC89089 01230000
  567.          LM    15,1,16(13)   Restore registers                 @SC86295 01231000
  568.          MEXIT ,                                               @SC89268 01232000
  569. .OTH     MNOTE 12,'Invalid type &TYPE'                         @SC89268 01233000
  570.          MEND                                                  @SC89268 01234000
  571.